<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<!-- Created with LatinByrd III -->
<!-- File: /Apps/NextDev/Concepts/ObjectiveC/B_Grammar/Grammar.rtf -->
<!-- Date: Sun Jun 28 19:36:53 1998 -->

<title>Grammar</title>
</head><body vlink="#ff0000" link="#0000ff" alink="#ff00ff" bgcolor="#ffffff" text="#000000">

<basefont size="3">

<p><font face="Times" size="-1">Release 3.3 Copyright</font> <font size="-1">©</font><font face="Times" size="-1">1995 by NeXT Computer, Inc.&nbsp; All Rights Reserved.</font>

</p><p><br>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="6"></td>

<td><font face="Helvetica" color="#ff00ff" size="+3"><b>B</b></font></td></tr>

</tbody></table>

</p><p><br><br>

</p><p><font face="Times" size="+3"><i>Reference Manual for the Objective C Language</i></font>

</p><p><br><br><br>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="106"></td>

<td><font face="Times">This appendix presents a formal grammar for the
Objective C extensions to the C language--as the Objective C language
is implemented for the NEXTSTEP development environment.&nbsp; It adds
to the grammar for ANSI standard C found in Appendix A of <i>The C Programming Language</i>
(second edition, 1988) by Brian W. Kernighan and Dennis M. Ritchie,
published by Prentice Hall, and should be read in conjunction with that
book.</font>

<p><font face="Times">The Objective C extensions introduce some new symbols (such as <i>class-interface</i>), but also make use of symbols (such as <i>function-definition</i>) that are explained in the standard C grammar.&nbsp; The symbols mentioned but not explained here are listed below:</font></p></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="131"></td>

<td nowrap="nowrap"><font face="Times"><i>compound statement</i></font></td>

<td><font face="Times"><i>identifier</i></font></td></tr>

<tr valign="top">

<td width="131"></td>

<td nowrap="nowrap"><font face="Times"><i>constant</i></font></td>

<td><font face="Times"><i>parameter-type-list</i></font></td></tr>

<tr valign="top">

<td width="131"></td>

<td nowrap="nowrap"><font face="Times"><i>declaration</i></font></td>

<td><font face="Times"><i>string</i></font></td></tr>

<tr valign="top">

<td width="131"></td>

<td nowrap="nowrap"><font face="Times"><i>declaration-list</i></font></td>

<td><font face="Times"><i>struct-declaration-list</i></font></td></tr>

<tr valign="top">

<td width="131"></td>

<td nowrap="nowrap"><font face="Times"><i>enum-specifier</i></font></td>

<td><font face="Times"><i>struct-or-union</i></font></td></tr>

<tr valign="top">

<td width="131"></td>

<td nowrap="nowrap"><font face="Times"><i>expression</i></font></td>

<td><font face="Times"><i>typedef-name</i></font></td></tr>

<tr valign="top">

<td width="131"></td>

<td nowrap="nowrap"><font face="Times"><i>function-definition</i></font></td>

<td><font face="Times"><i>type-name</i></font></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="106"></td>

<td><font face="Times">Of these, <i>identifier</i> and <i>string</i> are undefined terminal symbols.&nbsp; Objective C adds no undefined terminal symbols of its own.</font>

<p><font face="Times">Two notational conventions used here differ from those used in <i>The C Programming Language</i>:</font></p></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="105"></td>

<td nowrap="nowrap"><font face="Times"><img src="index_files/bullet1.gif" vspace="3" width="4" height="8"></font></td>

<td><font face="Times">Literal symbols are shown in <b>bold</b> type.</font></td></tr>

<tr valign="top">

<td width="105" height="12"></td></tr>

<tr valign="top">

<td width="105"></td>

<td nowrap="nowrap"><font face="Times"><img src="index_files/bullet1.gif" vspace="3" width="4" height="8"></font></td>

<td><font face="Times">Brackets enclose optional elements and are in <i>italic</i> type.&nbsp; Literal brackets, like other literal symbols, are nonitalic and bold.</font></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="106"></td>

<td><font face="Times">Otherwise, this appendix follows the conventions
of the C reference manual.&nbsp; Each part of the grammar consists of a
symbol followed by a colon and an indented list of mutually-exclusive
possibilities for expanding the symbol.&nbsp; For example:</font></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="125"></td>

<td><font face="Times"><i>receiver:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>expression</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>class-name</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>super</b></font></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="106"></td>

<td><font face="Times">However, there is an exception:&nbsp; Even
though they're not mutually exclusive, the constituents of classes,
categories, and protocols are listed on separate lines to clearly show
the ordering of elements.&nbsp; For example:</font></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="125"></td>

<td><font face="Times"><i>protocol-declaration:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@protocol</b>&nbsp; <i>protocol-name</i></font><br>
<img src="index_files/sp.gif" width="37" height="1"><font face="Times"><i>[ protocol-reference-list ]</i></font><br>
<img src="index_files/sp.gif" width="37" height="1"><font face="Times"><i>[ interface-declaration-list ]</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@end</b></font></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="106"></td>

<td><font face="Times">This exception to the general rule is easily recognized since each list terminates with <b>@end</b>.</font>

<p><font face="Times">There are just four entry points where the Objective C language modifies the rules defined for standard C:</font></p></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="105"></td>

<td nowrap="nowrap"><font face="Times"><img src="index_files/bullet1.gif" vspace="3" width="4" height="8"></font></td>

<td><font face="Times">External declarations</font></td></tr>

<tr valign="top">

<td width="105"></td>

<td nowrap="nowrap"><font face="Times"><img src="index_files/bullet1.gif" vspace="3" width="4" height="8"></font></td>

<td><font face="Times">Type specifiers</font></td></tr>

<tr valign="top">

<td width="105"></td>

<td nowrap="nowrap"><font face="Times"><img src="index_files/bullet1.gif" vspace="3" width="4" height="8"></font></td>

<td><font face="Times">Type qualifiers</font></td></tr>

<tr valign="top">

<td width="105"></td>

<td nowrap="nowrap"><font face="Times"><img src="index_files/bullet1.gif" vspace="3" width="4" height="8"></font></td>

<td><font face="Times">Primary expressions</font></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="106"></td>

<td><font face="Times">This appendix is therefore divided into four
sections corresponding to these points.&nbsp; Where a rule in the
standard C grammar is modified by an Objective C extension, the entire
rule is repeated in its modified form.</font></td></tr>

</tbody></table>

</p><p><br><br>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="6"></td>

<td><font face="Helvetica" size="+1"><b>External Declarations</b></font></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="106"></td>

<td><font face="Times"><i>external-declaration:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>function-definition</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>declaration</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>class-interface</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>class-implementation</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>category-interface</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>category-implementation</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>protocol-declaration</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>class-declaration-list</i></font>

<p><font face="Times"><i>class-interface:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@interface</b>&nbsp; <i>class-name&nbsp; [</i> <b>:</b>&nbsp; <i>superclass-name ]</i></font><br>
<img src="index_files/sp.gif" width="37" height="1"><font face="Times"><i>[ protocol-reference-list ]</i></font><br>
<img src="index_files/sp.gif" width="37" height="1"><font face="Times"><i>[ instance-variables ]</i></font><br>
<img src="index_files/sp.gif" width="37" height="1"><font face="Times"><i>[ interface-declaration-list ]</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@end</b></font>

</p><p><font face="Times"><i>class-implementation:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@implementation</b>&nbsp; <i>class-name&nbsp; [</i> <b>:</b>&nbsp; <i>superclass-name ]</i></font><br>
<img src="index_files/sp.gif" width="37" height="1"><font face="Times"><i>[ instance-variables ]</i></font><br>
<img src="index_files/sp.gif" width="37" height="1"><font face="Times"><i>[ implementation-definition-list ]</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@end</b></font>

</p><p><font face="Times"><i>category-interface:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@interface</b>&nbsp; <i>class-name</i>&nbsp; <b>(</b>&nbsp; <i>category-name</i>&nbsp; <b>)</b></font><br>
<img src="index_files/sp.gif" width="37" height="1"><font face="Times"><i>[ protocol-reference-list ]</i></font><br>
<img src="index_files/sp.gif" width="37" height="1"><font face="Times"><i>[ interface-declaration-list ]</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@end</b></font>

</p><p><font face="Times"><i>category-implementation:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@implementation</b>&nbsp; <i>class-name</i>&nbsp; <b>(</b>&nbsp; <i>category-name</i>&nbsp; <b>)</b></font><br>
<img src="index_files/sp.gif" width="37" height="1"><font face="Times"><i>[ implementation-definition-list ]</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@end</b></font>

</p><p><font face="Times"><i>protocol-declaration:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@protocol</b>&nbsp; <i>protocol-name</i></font><br>
<img src="index_files/sp.gif" width="37" height="1"><font face="Times"><i>[ protocol-reference-list ]</i></font><br>
<img src="index_files/sp.gif" width="37" height="1"><font face="Times"><i>[ interface-declaration-list ]</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@end</b></font>

</p><p><font face="Times"><i>class-declaration-list:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@class</b>&nbsp; <i>class-list</i>&nbsp; <b>;</b></font>

</p><p><font face="Times"><i>class-list:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>class-name</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>class-list</i>&nbsp; <b>,</b>&nbsp; <i>class-name</i></font>

</p><p><font face="Times"><i>protocol-reference-list:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>&lt;</b>&nbsp; <i>protocol-list</i>&nbsp; <b>&gt;</b></font>

</p><p><font face="Times"><i>protocol-list:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>protocol-name</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>protocol-list</i>&nbsp; <b>,</b>&nbsp; <i>protocol-name</i></font>

</p><p><font face="Times"><i>class-name:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>identifier</i></font>

</p><p><font face="Times"><i>superclass-name:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>identifier</i></font>

</p><p><font face="Times"><i>category-name:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>identifier</i></font>

</p><p><font face="Times"><i>protocol-name:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>identifier</i></font>

</p><p><font face="Times"><i>instance-variables:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>{</b>&nbsp; <i>[ visibility-specification ]&nbsp; struct-declaration-list&nbsp; [ instance-variables ]</i>&nbsp; <b>}</b></font>

</p><p><font face="Times"><i>visibility-specification:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@private</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@protected</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@public</b></font>

</p><p><font face="Times"><i>interface-declaration-list:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>declaration</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>method-declaration</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>interface-declaration-list&nbsp; declaration</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>interface-declaration-list&nbsp; method-declaration</i></font>

</p><p><font face="Times"><i>method-declaration:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>class-method-declaration</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>instance-method-declaration</i></font>

</p><p><font face="Times"><i>class-method-declaration:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>+</b>&nbsp; <i>[ method-type ]&nbsp; method-selector</i>&nbsp; <b>;</b></font>

</p><p><font face="Times"><i>instance-method-declaration:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><img src="index_files/c2D.gif" width="8" height="4">&nbsp; <font face="Times"><i>[ method-type ]&nbsp; method-selector</i>&nbsp; <b>;</b></font>

</p><p><font face="Times"><i>implementation-definition-list:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>function-definition</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>declaration</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>method-definition</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>implementation-definition-list&nbsp; function-definition</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>implementation-definition-list&nbsp; declaration</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>implementation-definition-list&nbsp; method-definition</i></font>

</p><p><font face="Times"><i>method-definition:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>class-method-definition</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>instance-method-definition</i></font>

</p><p><font face="Times"><i>class-method-definition:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>+</b>&nbsp; <i>[ method-type ]&nbsp; method-selector&nbsp; [ declaration-list ]&nbsp; compound-statement</i></font>

</p><p><font face="Times"><i>instance-method-definition:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><img src="index_files/c2D.gif" width="8" height="4">&nbsp; <font face="Times"><i>[ method-type ]&nbsp; method-selector&nbsp; [ declaration-list ]&nbsp; compound-statement</i></font>

</p><p><font face="Times"><i>method-selector:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>unary-selector</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>keyword-selector&nbsp; [</i> <b>,&nbsp; ...</b> <i>]</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>keyword-selector&nbsp; [</i> <b>,</b>&nbsp; <i>parameter-type-list ]</i></font>

</p><p><font face="Times"><i>unary-selector:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>selector</i></font>

</p><p><font face="Times"><i>keyword-selector:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>keyword-declarator</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>keyword-selector&nbsp; keyword-declarator</i></font>

</p><p><font face="Times"><i>keyword-declarator:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>:</b>&nbsp; <i>[ method-type ]&nbsp; identifier</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>selector</i>&nbsp; <b>:</b>&nbsp; <i>[ method-type ]&nbsp; identifier</i></font>

</p><p><font face="Times"><i>selector:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>identifier</i></font>

</p><p><font face="Times"><i>method-type:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>(</b>&nbsp; <i>type-name</i>&nbsp; <b>)</b></font></p></td></tr>

</tbody></table>

</p><p><br><br>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="6"></td>

<td><font face="Helvetica" size="+1"><b>Type Specifiers</b></font></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="106"></td>

<td><font face="Times"><i>type-specifier:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>void</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>char</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>short</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>int</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>long</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>float</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>double</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>signed</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>unsigned</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>id</b>&nbsp; <i>[ protocol-reference-list ]</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>class-name&nbsp; [ protocol-reference-list ]</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>struct-or-union-specifier</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>enum-specifier</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>typedef-name</i></font>

<p><font face="Times"><i>struct-or-union-specifier:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>struct-or-union&nbsp; [ identifier ]</i>&nbsp; <b>{</b>&nbsp; <i>struct-declaration-list</i>&nbsp; <b>}</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>struct-or-union&nbsp; [ identifier ]</i>&nbsp; <b>{&nbsp; @defs&nbsp; (</b>&nbsp; <i>class-name</i>&nbsp; <b>)&nbsp; }</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>struct-or-union&nbsp; identifier</i></font></p></td></tr>

</tbody></table>

</p><p><br><br>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="6"></td>

<td><font face="Helvetica" size="+1"><b>Type Qualifiers</b></font></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="106"></td>

<td><font face="Times"><i>type-qualifier:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>const</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>volatile</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>protocol-qualifier</i></font>

<p><font face="Times"><i>protocol-qualifier:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>in</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>out</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>inout</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>bycopy</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>oneway</b></font></p></td></tr>

</tbody></table>

</p><p><br><br>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="6"></td>

<td><font face="Helvetica" size="+1"><b>Primary Expressions</b></font></td></tr>

</tbody></table>

</p><p>

<table cellpadding="0" cellspacing="0">

<tbody><tr valign="top">

<td width="106"></td>

<td><font face="Times"><i>primary-expression:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>identifier</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>constant</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>string</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>(</b>&nbsp; <i>expression</i>&nbsp; <b>)</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>self</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>message-expression</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>selector-expression</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>protocol-expression</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>encode-expression</i></font>

<p><font face="Times"><i>message-expression:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>[</b>&nbsp; <i>receiver&nbsp; message-selector</i>&nbsp; <b>]</b></font>

</p><p><font face="Times"><i>receiver:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>expression</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>class-name</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>super</b></font>

</p><p><font face="Times"><i>message-selector:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>selector</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>keyword-argument-list</i></font>

</p><p><font face="Times"><i>keyword-argument-list:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>keyword-argument</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>keyword-argument-list&nbsp; keyword-argument</i></font>

</p><p><font face="Times"><i>keyword-argument:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>selector</i>&nbsp; <b>:</b>&nbsp; <i>expression</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>:</b>&nbsp; <i>expression</i></font>

</p><p><font face="Times"><i>selector-expression:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@selector&nbsp; (</b>&nbsp; <i>selector-name</i>&nbsp; <b>)</b></font>

</p><p><font face="Times"><i>selector-name:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>selector</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>keyword-name-list</i></font>

</p><p><font face="Times"><i>keyword-name-list:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>keyword-name</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>keyword-name-list&nbsp; keyword-name</i></font>

</p><p><font face="Times"><i>keyword-name:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><i>selector</i>&nbsp; <b>:</b></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>:</b></font>

</p><p><font face="Times"><i>protocol-expression:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@protocol&nbsp; (</b>&nbsp; <i>protocol-name</i>&nbsp; <b>)</b></font>

</p><p><font face="Times"><i>encode-expression:</i></font><br>
<img src="index_files/sp.gif" width="18" height="1"><font face="Times"><b>@encode&nbsp; (</b>&nbsp; <i>type-name</i>&nbsp; <b>)</b></font></p></td></tr>

</tbody></table>



</p><p>

</p></body></html>